Bug #41061 patch: Fix typos and amend code slightly
authorAlan Mackenzie <acm@muc.de>
Mon, 1 Jun 2020 15:21:54 +0000 (15:21 +0000)
committerAlan Mackenzie <acm@muc.de>
Mon, 1 Jun 2020 15:21:54 +0000 (15:21 +0000)
* lisp/progmodes/cc-align.el (c-lineup-ternary-bodies)
* doc/misc/cc-mode.texi (Operator Line-Up): Fix typos and amend code.

doc/misc/cc-mode.texi
lisp/progmodes/cc-align.el

index 16eac4828c77b082ecf1cc30eaad0b4355616fde..10bbf8ff09f51e65ff53bb68d949d89c2a90f9a9 100644 (file)
@@ -6399,8 +6399,8 @@ function is the same as specifying a list @code{(c-lineup-assignments
 @findex lineup-ternary-bodies @r{(c-)}
 Line up true and false branches of a ternary operator
 (i.e. @code{?:}).  More precisely, if the line starts with a colon
-which is a part of a said operator it with corresponding question
-mark.  For example:
+which is a part of a said operator, align it with corresponding
+question mark.  For example:
 
 @example
 @group
index c49bdc5c5185c1280f2eae22ede305dd833a88ff..6172afecbcf837ca27b291c50eab536fec2d4ebb 100644 (file)
@@ -791,32 +791,32 @@ arglist-cont-nonempty."
       c-basic-offset))
 
 (defun c-lineup-ternary-bodies (langelem)
-  "Line up true and false branches of a ternary operator (i.e. ‘?:’).
+  "Line up true and false branches of a ternary operator (i.e. `?:').
 More precisely, if the line starts with a colon which is a part of
-a said operator it with corresponding question mark; otherwise return
-nil.  For example:
+a said operator, align it with corresponding question mark; otherwise
+return nil.  For example:
 
     return arg % 2 == 0 ? arg / 2
                         : (3 * arg + 1);    <- c-lineup-ternary-bodies
 
-Works with: arglist-cont, arglist-cont-nonempty and statement-cont.
-"
+Works with: arglist-cont, arglist-cont-nonempty and statement-cont."
   (save-excursion
     (back-to-indentation)
     (when (and (eq ?: (char-after))
                (not (eq ?: (char-after (1+ (point))))))
       (let ((limit (c-langelem-pos langelem)) (depth 1))
         (catch 'done
-          (while (c-syntactic-skip-backward "^?:" limit t)
-            (goto-char (1- (point)))
+          (while (and (c-syntactic-skip-backward "^?:" limit t)
+                     (not (bobp)))
+            (backward-char)
             (cond ((eq (char-after) ??)
-                   ;; If we’ve found a question mark, decrease depth.  If we’re
-                   ;; reached zero, weve found the one we were looking for.
+                   ;; If we've found a question mark, decrease depth.  If we've
+                   ;; reached zero, we've found the one we were looking for.
                    (when (zerop (setq depth (1- depth)))
                      (throw 'done (vector (current-column)))))
                   ((or (eq ?: (char-before)) (eq ?? (char-before)))
-                   ;; Step over ‘::’ and ‘?:’ operators.  We don’t have to
-                   ;; handle ‘?:’ here but doing so saves an iteration.
+                   ;; Step over `::' and `?:' operators.  We don't have to
+                   ;; handle `?:' here but doing so saves an iteration.
                    (if (eq (point) limit)
                        (throw 'done nil)
                      (goto-char (1- (point)))))